package br.ufrj.neg.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import br.ufrj.neg.bean.Idioma;

public class IdiomaFilter implements Filter {

	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {

		HttpServletRequest request = (HttpServletRequest) arg0;
		HttpSession session = request.getSession();
		Idioma idioma = null;
		String idioma_setado = null;
		
		try {
			//Este atributo eh setado em IdiomaSwitcher.java
			idioma_setado = session.getAttribute("idioma_setado").toString();	
			idioma = new Idioma( idioma_setado );			
		} catch (Exception e) {
			if( request.getHeader("Accept-Language")!=null ){				
				idioma = new Idioma( request.getHeader("Accept-Language").split(";")[0].split(",")[0] );	
			}
			else{
				idioma = new Idioma( "en-US" );
			}
		}
		
		request.setAttribute("idioma", idioma);		
		arg2.doFilter(arg0, arg1);		
	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub		
	}

	
	
}
